using System;

namespace NovaCore.Interop {
	public enum NvtlErrorCode : short {
		LR_ERROR_SUCCESS = 0x0000,
		LR_ERROR_UNKNOWN = 0x0001,
		LR_ERROR_BAD_CMD = 0x0002,
		LR_ERROR_BAD_PARAM = 0x0003,
		LR_ERROR_BAD_LEN = 0x0004,
		LR_ERROR_BAD_SEC_MODE = 0x0005,
		LR_ERROR_PORT_NOT_OPEN = 0x0006,
		LR_ERROR_TIMED_OUT = 0x0007,
		LR_ERROR_INVALID_PARAM = 0x0008,
		LR_ERROR_WRITE_FAILED = 0x0009,
		LR_ERROR_DATA_CORRUPT = 0x000B,
		LR_ERROR_MODE_CHANGE_FAILED = 0x000C,
		LR_ERROR_BUFFER_TOO_SMALL = 0x000D,
		LR_ERROR_PORT_OPEN_FAILED = 0x000F,
		LR_ERROR_PORT_ALREADY_OPEN = 0x0011,
		LR_ERROR_INTERNAL_ERROR = 0x0013,
		LR_ERROR_API_NOT_SUPPORTED = 0x0014,
		LR_ERROR_BAD_SPC_MODE = 0x0015,
		LR_ERROR_DEVICE_NOT_AVAILABLE = 0x001B,
		LR_ERROR_ACTIVATION_FAILED = 0x001D,
		LR_ERROR_AT_CMD_ERROR_RESPONSE = 0x0030,
		LR_ERROR_DEVICE_ALREADY_LOCKED = 0x0031,
		LR_ERROR_DEVICE_ALREADY_UNLOCKED = 0x0032,
		LR_ERROR_INVALID_LOCK_CODE = 0x0033,
		LR_ERROR_INVALID_ACTIVATION_CODE = 0x0034,
		LR_ERROR_OPERATION_NOT_ALLOWED = 0x0035,
		LR_ERROR_AT_CMD_ERROR_SIM_BUSY = 0x0036,
		LR_ERROR_INVALID_RESPONSE = 0x0037,
		LR_ERROR_SMS_SENDING = 0x0038,
		LR_ERROR_BAD_MODE = 0x0040,
		LR_ERROR_NO_MEMORY = 0x0042,
		LR_ERROR_FILE_OPEN = 0x0044,
		LR_ERROR_FILE_WRITE = 0x0045,
		LR_ERROR_FILE_READ = 0x0046,
		LR_ERROR_FILE_STAT = 0x0047,
		LR_ERROR_SERVER_NOT_AVAILABLE = 0x0048,
		LR_ERROR_PARAM_TOO_LARGE = 0x0049,
		LR_ERROR_MISSING_BUNDLE_ID = 0x0050,
		LR_ERROR_UNKNOWN_HOST = 0x1007,
		LR_ERROR_HOST_UNREACHABLE = 0x1008,
		LR_ERROR_GPS_XTRA_FILE_DOWNLOAD = 0x1009,
		LR_ERROR_GPS_XTRA_FILE_WRITE = 0x100A,
		LR_ERROR_GPS_TIME_SYNC_PENDING = 0x100B,
	}

	public enum DeviceTechType {
		DEV_NONE = 0,
		DEV_EVDO = 4,
		DEV_UMTS = 7,
		DEV_HSDPA = 8,
		DEV_EVDO_REVA = 9,
	}

	public enum DeviceFormFactorType {
		DEV_TYPE_PC_CARD = 0,
		DEV_TYPE_MINI_PCI = 1,
		DEV_TYPE_EXPRESS_CARD = 2,
		DEV_TYPE_SM_BUS_MINI_PCI = 3,
	}

	public enum PropertyAction {
		PROP_GET = 0,
		PROP_SET = 1
	}

	public enum BATTERY_STATE {
		BATTERY_POWERED = 0,
		BATTERY_EXTERNAL_POWER = 1,
		BATTERY_UNAVAILABLE = 2
	}

	public enum CallStatusType {
		CALL_STATUS_IDLE,
		CALL_STATUS_CONNECTING,
		CALL_STATUS_AUTHENTICATING,
		CALL_STATUS_CONNECTED,
		CALL_STATUS_DORMANT,
		CALL_STATUS_DISCONNECTING
	}

	public enum SourceBuildBaseType {
		SRC_BUILD_BASE_UNKNOWN = 0,
		SRC_BUILD_BASE_BLACKBIRD = 1,
		SRC_BUILD_BASE_RAPTOR = 2,
		SRC_BUILD_BASE_HSDPA = 3,
		SRC_BUILD_BASE_HSDPA_7_2 = 4,
		SRC_BUILD_BASE_HSDPA_3_6 = 5
	}

	public enum ServiceProviderType {
		SRV_PROVIDER_UNKNOWN = 0,
		SRV_PROVIDER_SPRINT = 1,
		SRV_PROVIDER_VERIZON = 2,
		SRV_PROVIDER_TELUS = 3,
		SRV_PROVIDER_BELL_MOBILITY = 4,
		SRV_PROVIDER_MAX
	}

	public enum DeviceStateType {
		NW_DEVICE_STATE_UNKNOWN = 0,
		NW_DEVICE_STATE_NOCARD = 1,
		NW_DEVICE_STATE_INITIALIZING = 2,
		NW_DEVICE_STATE_DISABLED = 3,
		NW_DEVICE_STATE_LOCKED = 4,
		NW_DEVICE_STATE_SEARCHING = 5,
		NW_DEVICE_STATE_IDLE = 6,
		NW_DEVICE_STATE_CONNECTING = 7,
		NW_DEVICE_STATE_AUTHENTICATING = 8,
		NW_DEVICE_STATE_CONNECTED = 9,
		NW_DEVICE_STATE_RESERVED_2 = 10,
		NW_DEVICE_STATE_ACTIVATION = 11
	}

	public enum DeviceModeType {
		DEV_MODE_MIN = 0,
		DEV_MODE_POWER_OFF = 0,
		DEV_MODE_FTM = 1,
		DEV_MODE_OFFLINE = 2,
		DEV_MODE_OFFLINE_A = 3,
		DEV_MODE_OFFLINE_D = 4,
		DEV_MODE_ONLINE = 5,
		DEV_MODE_LPM = 6,
		DEV_MODE_MAX,
		DEV_MODE_UNKNOWN = 99,
		DEV_MODE_RESET = 100
	}

	[Flags]
	public enum GpsModeType {
		NW_GPS_NOGPS = 0x00,
		NW_GPS_STANDALONE = 0x01,
		NW_GPS_MS_BASED = 0x02,
		NW_GPS_MS_ASSISTED = 0x04,
		NW_GPS_INTERNET_ASSISTED = 0x08,
	}
}